}
};
- if !matches.opt_present("m") {
- fail("missing-argument", "manifest");
- return;
- }
-
- let manifest = matches.opt_str("m").unwrap();
+ let manifest = match matches.opt_str("m") {
+ Some(m) => m,
+ None => {
+ fail("missing-argument", "manifest");
+ return;
+ }
+ };
let file = Path::new(manifest);
let contents = match File::open(&file).read_to_str() {
Ok(s) => s,
}
pub fn pop(&mut self) -> Package {
- self.packages.pop().unwrap()
+ self.packages.pop().expect("PackageSet.pop: empty set")
}
/// Get a package by name out of the set
pub fn get<'a>(&'a self, name: &str) -> &'a Package {
- self.packages.iter().find(|pkg| name == pkg.get_name()).unwrap()
+ self.packages.iter().find(|pkg| name == pkg.get_name())
+ .expect("PackageSet.get: empty set")
}
pub fn get_all<'a>(&'a self, names: &[&str]) -> Vec<&'a Package> {
let mut cmd = cmd.split(' ');
let mut p = util::process(cmd.next().unwrap())
.cwd(pkg.get_root())
- .env("OUT_DIR", Some(cx.dest.as_str().unwrap()))
+ .env("OUT_DIR", Some(cx.dest.as_str().expect("non-UTF8 dest path")))
.env("DEPS_DIR", Some(cx.dest.join(cx.deps_dir)
- .as_str().unwrap()));
+ .as_str().expect("non-UTF8 deps path")));
for arg in cmd {
p = p.arg(arg);
}
-use std::{io,fmt,os};
+use std::{io,fmt,os, result};
use std::collections::HashMap;
use serialize::{Encodable,Encoder};
use toml;
match existing.value {
String(_) => Err(internal("should be an Array, but it was a String")),
List(ref mut list) => {
- let new_list: Vec<CargoResult<String>> =
- val.iter().map(toml_string).collect();
- if new_list.iter().any(|v| v.is_err()) {
- return Err(internal("should be an Array of Strings, but \
- was an Array of other values"));
- } else {
- let new_list: Vec<String> =
- new_list.move_iter().map(|v| v.unwrap()).collect();
- list.push_all(new_list.as_slice());
- existing.path.push(path.clone());
- Ok(())
+ let r: CargoResult<Vec<String>> = result::collect(val.iter().map(toml_string));
+ match r {
+ Err(_) => Err(internal("should be an Array of Strings, but \
+ was an Array of other values")),
+ Ok(new_list) => {
+ list.push_all(new_list.as_slice());
+ existing.path.push(path.clone());
+ Ok(())
+ }
}
}
}